home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / comms / other / slrn / slrn_src / src / vmsmake.com < prev    next >
Text File  |  1999-05-14  |  7KB  |  228 lines

  1. $ SLRN_VERSION = "0.9.5.5"
  2. $ SLANG_VERSION =  10003
  3. $! Modified VMSMAKE for SLRN - Andy Harper, Kings College London
  4. $!                             Martin Zinser, GSI Darmstadt
  5. $! MPJZ - Create temp.mms from FDL to avoid file type problems  [21-DEC-1996]
  6. $! AH   - Modified default for SLRN_LIB_DIR            [20-DEC-1996]
  7. $! MPJZ - P3 to enforce link only with DCL build                [04-NOV-1996]
  8. $! MPJZ - Automatic MMS/MMK detection                           [19-OCT-1996]
  9. $! MPJZ - New options for slrn_lib_dir location and debug       [19-OCT-1996]                          
  10. $! AH   - Use logicals to define SLANG location, if defined    [16-MAY-1996]
  11. $! AH   - A few bug fixes!                    [16-MAY-1996]
  12. $! AH   - Auto-detect TCP stack and C compiler type            [14-NOV-1995]
  13. $! AH   - Override auto-selection of TCP stack via P1            [14-NOV-1995]
  14. $!
  15. $! Parameters
  16. $! 
  17. $! P1 : Enforce TCP stack (Multinet, UCX, Netlib)
  18. $! P2 : Location of slrn_lib_dir
  19. $! P3 : D = Build debug image
  20. $!      L = For DCL build only perform a link
  21. $!
  22. $ SLANGLIB = "[-.-.slang.src]"
  23. $ SLANGOBJ = SLANGLIB + "SLANG.OLB"                ! AH 16-MAY-1996
  24. $
  25. $ Make = ""
  26. $!
  27. $! If logical names defining the location of the slang libraries and header
  28. $! files exist, use them in preference to the above definition of SLANGLIB
  29. $!    -  SLANG_ROOT:[SRC] = location of header files (slang.h)
  30. $!    -  SLANG_LIBRARY    = (if defined) location of SLANG.OLB
  31. $!                  (if not defined) SLANG_ROOT:[SRC]SLANG.OLB used
  32. $
  33. $ if f$trnlnm("SLANG_ROOT") .nes. ""            ! AH 16-MAY-1996
  34. $   then                        ! AH 16-MAY-1996
  35. $     SLANGLIB := "SLANG_ROOT:[SRC]"            ! AH 16-MAY-1996
  36. $     if f$trnlnm("SLANG_LIBRARY") .nes. ""        ! AH 16-MAY-1996
  37. $       then                        ! AH 16-MAY-1996
  38. $         SLANGOBJ = "SLANG_LIBRARY"            ! AH 16-MAY-1996
  39. $       else                        ! AH 16-MAY-1996
  40. $         SLANGOBJ = SLANGLIB  +  "SLANG.OLB"        ! AH 16-MAY-1996
  41. $     endif                        ! AH 16-MAY-1996
  42. $ endif                            ! AH 16-MAY-1996
  43. $!
  44. $!      Build the option-file
  45. $!
  46. $ open/write optf slrn.opt
  47. $ open/write aux  aux.opt
  48. $ write optf "art.obj"
  49. $ write optf "chmap.obj"
  50. $ write optf "editscore.obj"
  51. $ write optf "group.obj"
  52. $ write optf "hash.obj"
  53. $ write optf "help.obj"
  54. $ write optf "interp.obj"
  55. $ write optf "menu.obj"
  56. $ write optf "mime.obj"
  57. $ write optf "misc.obj"
  58. $ write optf "post.obj"
  59. $ write optf "score.obj"
  60. $ write optf "server.obj"
  61. $ write optf "sortdate.obj"
  62. $ write optf "slrn.obj"
  63. $ write optf "startup.obj"
  64. $ write optf "ttymsg.obj"
  65. $ write optf "util.obj"
  66. $ write optf "uudecode.obj"
  67. $ write optf "vms.obj"
  68. $ write optf "vmsmail.obj"
  69. $ write optf "xover.obj"
  70. $ write optf "version.obj"
  71. $ write optf "print.obj"
  72. $ write optf "slrndir.obj"
  73. $ write optf "grplens.obj"
  74. $ write optf "Identification=""Slrn """ + 'SLRN_VERSION'
  75. $ write optf "''SLANGOBJ'" + "/LIBR"
  76. $!
  77. $!
  78. $! Determine TCP stack availability (NOTE - order of test is important!)
  79. $ TCP = "NONE"
  80. $ if f$trnlnm("UCX$INET_HOST","LNM$SYSTEM") .nes. "" then $ TCP = "UCX"
  81. $ if f$trnlnm("MULTINET",     "LNM$SYSTEM") .nes. "" then $ TCP = "MULTINET"
  82. $ if f$trnlnm("NETLIB_DIR",   "LNM$SYSTEM") .nes. "" then $ TCP = "NETLIB"
  83. $!
  84. $ if P1 .nes. "" then $ TCP = P1    ! Override via user parameter
  85. $!
  86. $! Have a look for slrn_lib_dir location
  87. $!
  88. $ if P2 .nes. "" 
  89. $ then
  90. $   SLRNLIB = "''p2'"
  91. $ else
  92. $!   SLRNLIB = "LIB$:[NEWS]"
  93. $   SLRNLIB = "SLRN_LIB_DIR:"                    ! [AH 20-DEC-1996]
  94. $ endif
  95. $!
  96. $! Check if we should build a debug version
  97. $!
  98. $ if f$locate("D",P3) .ne. f$length(p3)
  99. $ then
  100. $   CDEB = "/noopt/deb"
  101. $   LFLAGS = "/debug"
  102. $ else
  103. $   CDEB = ""
  104. $   LFLAGS = "/nodeb"
  105. $ endif
  106. $!
  107. $! Check for MMK/MMS
  108. $ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
  109. $ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
  110. $!
  111. $! Determine which C compiler
  112. $ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. ""
  113. $   then ! DEC C
  114. $     COMPILER = "DEC C"
  115. $     if (TCP .nes. "MULTINET")
  116. $       then
  117. $       PREFIX := "/PREFIX=ALL"
  118. $     else
  119. $       PREFIX := "/PREF=(ALL,EXC=(SOCKET,CONNECT,BIND,LISTEN,SOCKET_READ,SOCKET_WRITE,SOCKET_CLOSE,SELECT,ACCEPT,BCMP,BCOPY,BZERO,GETHOSTBYNAME,GETHOSTBYADDR,GETPEERNAME,GETDTABLESIZE,HTONS,HTONL,NTOHS,NTOHL,SEND,SENDTO,RECV,RECVFROM))"
  120. $     endif
  121. $     CCOPT = ""
  122. $   else ! VAX C
  123. $     COMPILER = "VAX C"
  124. $     PREFIX := ""
  125. $     write optf "sys$share:vaxcrtl.exe/share"
  126. $     write aux "sys$share:vaxcrtl.exe/share"
  127. $     if f$trnlnm("SYS").eqs."" then DEFINE SYS SYS$LIBRARY
  128. $ endif
  129. $ write sys$output "%VMSMAKE-I-CC, Building with ", COMPILER
  130. $!
  131. $ if (TCP .eqs. "UCX")
  132. $   then
  133. $    if (COMPILER .eqs. "VAX C") then write optf "sys$share:ucx$ipc/libr"
  134. $ else if (TCP .eqs. "MULTINET")
  135. $        then
  136. $          write optf "multinet:multinet_socket_library/share"
  137. $   else if (TCP .eqs. "NETLIB")
  138. $          then
  139. $            write optf "netlib_shrxfr/share"
  140. $        else        ! Either default of NONE or unknown P1 parameter
  141. $          write sys$error "%VMSMAKE-E-NONETWORK, Cannot determine which TCP stack you have"
  142. $          exit
  143. $        endif
  144. $      endif
  145. $ endif
  146. $ write sys$output "%VMSMAKE-I-TCPFOUND, Building with the ", TCP, " network interface"
  147. $!
  148. $!
  149. $!
  150. $ close optf
  151. $ close aux
  152. $!
  153. $!
  154. $! Define key macros and other flags
  155. $ DEFS := "''TCP',SLRN_LIB_DIR=""""""""""""""""''SLRNLIB'"""""""""""""""""
  156. $ if (Make .nes. "")
  157. $   then
  158. $    open/write tfdl temp.fdl
  159. $    write tfdl "FILE"
  160. $    write tfdl "    NAME                    ""TEMP.MMS"""
  161. $    write tfdl "    ORGANIZATION            sequential"
  162. $    write tfdl ""
  163. $    write tfdl "RECORD"
  164. $    write tfdl "    BLOCK_SPAN              yes"
  165. $    write tfdl "    CARRIAGE_CONTROL        carriage_return"
  166. $    write tfdl "    FORMAT                  stream_lf"
  167. $    close tfdl
  168. $    create/fdl=temp.fdl 
  169. $    open/append tmms temp.mms
  170. $    write tmms "CPREF = ''PREFIX'"
  171. $    write tmms "CFLAGS = /INC=(''SLANGLIB')/DEF=(''DEFS')$(CPREF) ''CDEB'"
  172. $    write tmms "SLANGDIR = ''SLANGLIB'"
  173. $    close tmms
  174. $   else
  175. $    CFLAGS := "/INC=(''SLANGLIB')/DEF=(''DEFS')''PREFIX' ''CDEB'" 
  176. $ endif
  177. $! Build
  178. $ copy slrnconf.h config.h
  179. $ purge config.h
  180. $!
  181. $! Compile the program
  182. $!
  183. $ if (Make .nes. "")
  184. $   then
  185. $    copy temp.mms,descrip.mms temp.mms
  186. $    'Make'/des=temp.mms
  187. $ else
  188. $   if f$locate("L",p3).ne.f$length(p3) then goto link
  189. $   CC/INCLUDE=('SLANGLIB') CHKSLANG.C
  190. $   LINK/EXEC=CHKSLANG.EXE CHKSLANG.OBJ,aux.opt/opt
  191. $   CHKSLANG := $SYS$DISK:[]CHKSLANG
  192. $   CHKSLANG SLRN 'SLANG_VERSION'
  193. $   v = f$verify(1)
  194. $   CC 'CFLAGS' ART.C
  195. $   CC 'CFLAGS' CHMAP.C
  196. $   CC 'CFLAGS' EDITSCORE.C
  197. $   CC 'CFLAGS' GROUP.C
  198. $   CC 'CFLAGS' HASH.C
  199. $   CC 'CFLAGS' HELP.C
  200. $   CC 'CFLAGS' INTERP.C
  201. $   CC 'CFLAGS' MENU.C
  202. $   CC 'CFLAGS' MIME.C
  203. $   CC 'CFLAGS' MISC.C
  204. $   CC 'CFLAGS' POST.C
  205. $   CC 'CFLAGS' SCORE.C
  206. $   CC 'CFLAGS' SERVER.C
  207. $   CC 'CFLAGS' SLRN.C
  208. $   CC 'CFLAGS' SORTDATE.C
  209. $   CC 'CFLAGS' STARTUP.C
  210. $   CC 'CFLAGS' TTYMSG.C
  211. $   CC 'CFLAGS' VERSION.C
  212. $   CC 'CFLAGS' PRINT.C
  213. $   CC 'CFLAGS' UTIL.C
  214. $   CC 'CFLAGS' UUDECODE.C                      ! AH 24-MAY-1996
  215. $   CC 'CFLAGS' VMS.C
  216. $   CC 'CFLAGS' VMSMAIL.C
  217. $   CC 'CFLAGS' XOVER.C
  218. $   CC 'CFLAGS' SLRNDIR.C
  219. $   CC 'CFLAGS' GRPLENS.C
  220. $ LINK:
  221. $   LINK/EXEC=SLRN.EXE 'LFLAGS' slrn.opt/opt                      ! AH 16-MAY-1996
  222. $   v=f$verify(v)
  223. $ endif
  224. $ purge *.opt
  225. $ purge *.mms
  226. $ purge *.fdl
  227. $ exit
  228.